export default {
  //开启命名空间
  namespaced: true,
  state: () => ({
    //收货地址
    address: JSON.parse(uni.getStorageSync('address') || '{}'),

    //登陆成功之后的字符串
    token: uni.getStorageSync('token')||'',

    //用户的基本信息
    userinfo: JSON.parse(uni.getStorageSync('userinfo')||'{}'),
    
    // 重定向的 object 对象 { openType, from }
    redirectInfo:null
  }),
  //方法
  mutations: {
    //更新address的方法
    updateAddress(state, address) {
      state.address = address

      this.commit('m_user/saveAddressToStorage')
    },
    //将address持久化到本地的方法
    saveAddressToStorage(state) {
      uni.setStorageSync('address', JSON.stringify(state.address)||'{}')
    },

    //更新用户信息的方法
    updateUserInfo(state, userinfo) {
      state.userinfo = userinfo

      this.commit('m_user/saveUserInfoToStorage')
    },
    //将userInfo持久化到本地的方法
    saveUserInfoToStorage(state) {
      uni.setStorageSync('userinfo', JSON.stringify(state.userinfo))
    },
    
    //更新token字符串
    updateToken(state,token){
      state.token=token
      
      this.commit('m_user/saveTokenToStorage')
    },
    //将token持久化到本地
    saveTokenToStorage(state){
      uni.setStorageSync('token',state.token)
    },
    
    //更新重定向的信息
    updateRedirectInfo(state,info){
      state.redirectInfo=info
    }
  },
  getters: {
    //定义一个计算属性，拼接详细地址信息
    addstr(state) {
      if (!state.address.provinceName) return ''
      return state.address.provinceName + state.address.cityName + state.address.countyName + state.address.detailInfo
    }
  }
}
